#ifndef De_h
#define De_h

#include <vector>
#include <ostream>
#include "Glm.h"
#include "Point3D.h"

class Joueur;
class Visitor;

/**
 * Classe De
 */
class De 
{

   friend std::ostream & operator<<(std::ostream &, const De &);

 public:

   De();
   ~De();
   void accept(Visitor * _visitor);
   
   //ModelOBJ * getModel();
   Point3D * getPosition() { return &position; }
   GLMmodel * getModel() { return de_model; }
   
   //void toggleVisibility() { visible = !visible; }
   void toggleRotation();

   int getNumber();

   //bool isVisible() { return visible; }
   bool isRotate() { return rotate; }

   float getAngleRotation() { return angleRotation; }
   void makeRotation();
   
  protected:
   
   GLMmodel * de_model;
   Point3D position;
   //bool visible;
   bool rotate;
   float angleRotation;
    
};
#endif

